VueRouter 构造函数
创建一个路由匹配对象,根据mode
来采取不同的路由方式
1 | constructor(options: RouterOptions = {}) { |
1. createMatcher
创建匹配函数
匹配函数是由 src/create-matcher.js
中的 createMatcher
创建的:
根据传入的 routes
配置生成对应的路由 map,然后直接返回了 match
匹配函数和添加路由的函数addRoutes
1 | /* @flow */ |
2. createRouteMap
创建路由映射函数
src/create-route-map.js
根据传入的 routes
配置生成对应的路由 map
1 | export function createRouteMap( |
addRouteRecord
添加路由记录函数
给routes
里的每个route
添加路由记录;
如果route
有children
,给每个child
添加路由记录;
如果路由有别名的话,给别名也添加路由记录;
建立pathMap,nameMap映射
1 | function addRouteRecord( |
normalizePath
函数
格式化 url,会删除末尾的/,如果route是子级,会连接父级和子级的path,形成一个完整的path
1 | function normalizePath( |
cleanPath
函数
双斜杠全局替换成单斜杠
1 | export function cleanPath(path: string): string { |